package com.yuwen.yuwenRPC.model;
import cn.hutool.core.util.StrUtil;
import com.yuwen.yuwenRPC.constant.RpcConstant;
import lombok.Data;
/**
 * @ClassNameServiceMetaInfo
 * @Description TODO
 * @Author钰玟
 * @Date2025/3/31 下午7:03
 * @Version 1.0
 **/



/**
 * 服务中心元信息
 */
@Data
public class ServiceMetaInfo {
    /**
     * 服务名称
     */
    private String serviceName;
    /**
     * 服务版本
     */
    private String serviceVersion = RpcConstant.DEFAULT_SERVICE_VERSION;
    /**
     * 服务域名
     */
    private String serviceHost;
    /**
     * 服务端口号
     */
    private Integer servicePort;
    /**
     * 服务分组 (未实现)
     */
    //TODO
    private String serviceGroup = "default";

    /**
     * 获取服务的键名 ：serviceName+serviceVersion
     * @return  serviceName+serviceVersion
     */
    public String getServiceKey() {
        return String.format("%s:%s", serviceName, serviceVersion);
    }

    /**
     * 获取服务节点信息
     * @return  serviceName+serviceVersion/serviceHost:servicePort
     */
    public String getServiceNodeKey(){
        return String.format("%s/%s:%s",getServiceKey(), serviceHost, servicePort);
    }

    public String getServiceAddress() {
        //如果主机名不包括http
        if(!StrUtil.contains(serviceHost, "http")){
            //则添加 http
            return String.format("http://%s:%s",serviceHost,servicePort);
        }
        //存在则无需添加
        return String.format("%s:%s",serviceHost,servicePort);

    }

}
